package outbound_crowd

import (
	"context"
	"git.mycaigou.com/gfyx/micro-gfyx-oppty-service/infrastructure/repository/remote/bigdata_remote"
	pb "git.mycaigou.com/gfyx/micro-gfyx-oppty-service/proto/micro_gfyx_oppty_service_proto/micro-gfyx-oppty-service/market"
)

type OutboundCrowdServiceIface interface {
	// GetCrowdList 人群列表
	GetCrowdList(ctx context.Context, request *pb.GetCrowdListRequest) (*pb.GetCrowdListResponse, error)
	// GetCrowdDetail 人群详情
	GetCrowdDetail(ctx context.Context, request *pb.GetCrowdDetailRequest) (*pb.GetCrowdDetailResponse, error)
	// AddCrowd 添加、保存人群
	AddCrowd(ctx context.Context, request *pb.AddCrowdRequest) (*pb.AddCrowdResponse, error)
	// DeleteCrowd 删除人群
	DeleteCrowd(ctx context.Context, request *pb.DeleteCrowdRequest) (*pb.DeleteCrowdResponse, error)
	// GetCrowdByWinbid 获取中标人群列表
	GetCrowdByWinbid(ctx context.Context, request *pb.GetCrowdByWinbidRequest) (*pb.GetCrowdByWinbidResponse, error)
	// GetCrowdByDeveloper 获取甲方单位人群列表
	GetCrowdByDeveloper(ctx context.Context, request *pb.GetCrowdByDeveloperRequest) (*pb.GetCrowdByDeveloperResponse, error)
	// GetCrowdByRpa 获取RPA人群列表
	GetCrowdByRpa(ctx context.Context, request *pb.GetCrowdByRpaRequest) (*pb.GetCrowdByRpaResponse, error)
	// GetRpaContactMobile 获取RPA联系人手机号
	GetRpaContactMobile(ctx context.Context, request *pb.GetRpaContactMobileRequest) (*pb.GetRpaContactMobileResponse, error)
	// GetWinbidCrowdById 根据人群id，获取中标人群列表
	GetWinbidCrowdById(ctx context.Context, crowdId int32, page int32, pageSize int32) (*bigdata_remote.GetCrowdByWinbidData, error)
	// GetDeveloperCrowdById 根据人群id，获取甲方单位人群列表
	GetDeveloperCrowdById(ctx context.Context, crowdId int32, page int32, pageSize int32) (*bigdata_remote.GetCrowdByDeveloperData, error)
	// CrowdDetailWinbid 人群详情：中标人群数据
	CrowdDetailWinbid(ctx context.Context, request *pb.CrowdDetailWinbidRequest) (*pb.CrowdDetailWinbidResponse, error)
	// CrowdDetailDeveloper 人群详情：甲方单位人群数据
	CrowdDetailDeveloper(ctx context.Context, request *pb.CrowdDetailDeveloperRequest) (*pb.CrowdDetailDeveloperResponse, error)
}
